export interface InsurancePlanReqDto {
    companyId: number
    isDelete?: number
    isAllowedRepeat?: string
    isCompanyAllowedRepeat?: number
    allowedDetermineStatus?: number
    isEnd?: number
    searchBeginTime?: string
    searchEndTime?: string
}

export interface InsurancePlanDto {
    id: number
    planId: null
    month: null
    isPcAdmin: null
    insurCompany: string
    insurCompanyName: string
    insurCompanyLogo: null
    insurCompanyPlanCode: string
    companyName: string
    insurCompanyPlanName: string
    ensureCount: null
    type: number
    types: null
    companyPlanType: string
    price: number
    priceFour: null
    priceFive: null
    priceCost: null
    priceFourCost: null
    priceFiveCost: null
    exceedPrice: null
    companyId: number
    isDelete: boolean
    hasEnsure: boolean
    endTime: null
    beginTime: string
    searchBeginTime: null
    searchEndTime: null
    isEnd: boolean
    createTime: null
    updateTime: null
    createUserId: null
    updateUserId: null
    ensureLimitThree: number
    ensureLimitFour: number
    ensureLimitFive: number
    isAllowedRepeat: number
    isCompanyAllowedRepeat: number
    allowedDetermineStatus: number
    ensureLimit: null
    insureBase: null
    insurComCompanyPlansRecords: null
    auditStatus: string
    updatePlanCount: number
    exceedConfig: null
    isCheckGyasEnsureNumberFour: null
    headCount: number
    companyIds: null
    insurCompanyList: null
}

export interface PeriodDataDto {
    expirePlanCount: number
    unexpiredPlanCount: number
    addInsur: number
    reduceInsur: number
    revoke: number
    automaticReduceInsur: number
}

export interface PlanReqDto {
    id: number
    companyName: string
    insurCompanyPlanName: string
    price: number
    priceFive: number
    priceFour: number
    ensureLimitThree: number
    ensureLimitFour: number
    ensureLimitFive: number
    ensureLimit: number
    insureBase: number
    beginTime: string
    endTime: string
    hasEnsure: boolean
    isAllowedRepeat: number
    isCompanyAllowedRepeat: number
    allowedDetermineStatus: number
    exceedConfig: string | null
}


export interface OperateRecordDto {
    id: number
    companyId: number
    companyName: null
    companyPlanId: number
    insurCompany: string
    companyPlanName: string
    managerId: number
    managerName: string
    isDelete: number
    isSuccess: number
    isNeedNotice: null
    total: number
    totalPlans: null
    msg: string
    insurStartDate: string
    operationType: number
    type: number
    createTime: string
    createUserId: number
    updateTime: null
    openApiPolicyChangeId: null
    updateUserId: null
    params: Params
    searchText: null
    preciseSearchUserInfo: null
    managerHeadUrl: null
    beginInsureDay: null
    endInsureDay: null
    staffRecordList: null
    staffRecordCount: null
    effectMonth: null
    isAllowRevoke: boolean
    onekeyEnsureType: number
    orderTime: null
    queryTimeType: null
    reportYear: null
    companyIds: null
    insurCompanyPlanCode: null
    saleId: null
    saleName: null
    saleIds: null
    deptId: null
    deptName: null
    queryDate: null
    isPcAdmin: null
    operateStaffList: null
}

interface Params {
}


export interface OperateRecordDetailDto {
    id: number
    companyId: number
    companyIds: null
    companyPlanId: number
    companyPlanName: string
    insurCompany: string
    userId: null
    userName: string
    code: string
    idCardNo: string
    beforeUpdateInsurStartTime: null
    insurStartTime: string
    insurEndTime: string
    policyStatus: number
    policyStatusS: null
    isDelete: number
    serveCompanyId: number
    serveCompanyName: string
    joinType: null
    occupationName: string
    occupationLevel: number
    occupationOriginName: string
    ensureDayRrb: null
    ensureDayCqg: null
    companyName: string
    insurCompanyPlanCode: string
    occupationOriginLevel: number
    createTime: string
    createUserId: number
    updateTime: string
    updateUserId: number
    occupationId: number
    isMonthMode: null
    params: Params
    searchText: null
    searchUserInfo: null
    searchServeCompany: null
    preciseSearchUserInfo: null
    workerInfoList: null
    idCardNoList: null
    insurValidFlag: boolean
    insurEmptyEndDateFlag: boolean
    insurExistEndDateFlag: boolean
    outDangerDate: null
    phone: null
    user_head_url: null
    policyPeopleCount: null
    policyCount: null
    costFee: null
    age: null
    index: null
    type: null
    queryDate: null
    comboCode: null
    price: null
    isGodWorker: null
    isAdmin: number
    insurDate: null
    isAllData: null
    isPcAdmin: null
}


export interface InsuranceCheckDto {
    id: number
    serveCompanyName: string
    serveCompanyId: number
    serveCompanyIdList: null
    companyId: number
    companyIds: null
    companyName: string
    isDelete: number
    insureCompanyType: string
    status: number
    applyOccupationStatus: null
    occupationIds: null
    occupationList: OccupationDto[]
    fileDetailsIds: string
    fileDetail: null
    fileDetailList: string[]
    fileDetails: FileDetailDto[]
    remark: null
    rejectRemark: null
    createTime: string
    createUserId: number
    createUserName: null
    updateTime: string
    updateUserId: number
    area: string
    params: Params
    promptingMsg: null
    staffCount: null
    name: null
    userType: null
    isOpenApiServeCompany: null
    openApiAccountName: null
    openApiCompanyId: null
    serveCompanyNames: null
    salesName: string
    occupationRecord: null
    searchText: null
    occupationId: null
    fileDetailId: null
    isForbidden: null
    isBlacklist: number
    specialAppoint: null
    channelStatus: null
    insuranceStatus: null
    isNeedCheckOpenInsurance: null
    occupationInsuranceList: null
    newOccupationRecordTime: number
    newOccupationRecordStatus: number
    isPcAdmin: null
}

export interface OccupationDto {
    id: number
    periodIndustryId: number
    periodIndustryName: string
    code: null
    name: string
    originName: null
    level: string
    originLevel: null
    isDelete: number
    createTime: string
    createUserId: number
    updateTime: string
    updateUserId: number
    insurCompanyOccupationList: null
}

export interface FileDetailDto {
    id: number
    fileUrl: string
    fileType: null
    fileSize: null
    createTime: null
    createUserId: number
    updateTime: null
    updateUserId: null
    params: Params
}

export interface InsuraceStaffReqDto {
    companyId: number
    insurCompany: string
    insurStartTime: string
    insurEndTime: string
    isDelete: 0 | 1
    companyPlanName: string
    serveCompanyName: string
    userName: string
    idCardNo: string
    occupationLevel: number
    occupationOriginLevel: number
    policyStatus: number
    isMonthMode: number
}
export interface InsuraceStaffDto {
    id: number
    companyId: number
    companyIds: null
    companyPlanId: number
    companyPlanName: string
    insurCompany: string
    userId: null
    userName: string
    code: string
    idCardNo: string
    beforeUpdateInsurStartTime: null
    insurStartTime: string
    insurEndTime: string
    policyStatus: number
    policyStatusS: null
    isDelete: number
    serveCompanyId: number
    serveCompanyName: string
    joinType: null
    occupationName: string
    occupationLevel: number
    occupationOriginName: string
    ensureDayRrb: null
    ensureDayCqg: string
    companyName: string
    insurCompanyPlanCode: string
    occupationOriginLevel: number
    createTime: string
    createUserId: number
    updateTime: null
    updateUserId: null
    occupationId: number
    isMonthMode: number
    params: Params
    searchText: null
    searchUserInfo: null
    searchServeCompany: null
    preciseSearchUserInfo: null
    workerInfoList: null
    idCardNoList: null
    insurValidFlag: boolean
    insurEmptyEndDateFlag: boolean
    insurExistEndDateFlag: boolean
    outDangerDate: null
    phone: null
    user_head_url: null
    policyPeopleCount: null
    policyCount: null
    costFee: null
    age: null
    index: null
    type: null
    queryDate: null
    comboCode: null
    price: number
    isGodWorker: number
    isAdmin: number
    insurDate: null
    isAllData: null
    isPcAdmin: null
}



export interface InsuraceSaleDto {
    deptName: string
    eleCommission: string
    elePerformance: string
    entryTime: string
    isShowRankingList: number
    payCommission: string
    payCount: string
    payPerformance: string
    payRenewCommission: string
    payRenewCount: string
    payRenewPerformance: string
    periodCommission: string
    periodPerformance: string
    phone: string
    queryTime: string
    saleId: number
    saleName: string
    salesHeadUrl: string
    searchText: string
    sex: string
    tyxCommission: string
    tyxPerformance: string
    userId: number
    wesureCommission: string
    wesurePerformance: string
}

export interface InsuraceeCompanyListDto {
    dictValue: string
    dictLabel: string
    dictType: number
    status: string
    default: boolean
    params: object
}

export interface InsuranceCountDto {
    totalClaimsPendingCount: number
    totalEstimateMoney: number
    totalFinalMoney: number
    totalNotarizePriceCount: number
    totalRejectCount: number
    totalReportCaseCount: number
    totalSettleLawsuitCount: number
    [key: string]: number
}

export interface LongInsuranceCaseDto {
    dateRange: string[] | undefined
    salesId: string
    companyId: string
    serveCompanyId: string
    outDangerUserName: string
    outDangerPhone: string
    outDangerIdCardNo: string
    outDangerStartDate: string
    outDangerEndDate: string
    reportPhone: string
    reportStatus: string
    insurCompany: string
    uploadStatus: string
}

export interface ReportCaseResultDto {
    createTime?: string
    id: number
    remark?: string
    reportRemark?: string
}

export interface LongInsuranceCaseListDto<ReportCaseResultDto> {
    insurCompany: string
    insureCompanyType: string
    companyId: number
    id: string
    idCardNo: string
    companyName: string
    outDangerUserName: string
    serveCompanyName: string
    insurCompanyName: string
    occupationName: string
    occupationLevel: number
    estimateMoney: number
    finalMoney: number
    salesName: string
    createTime: string
    outDangerDate: string
    outDangerPlace: string
    outDangerPhone: string
    outDangerIdCardNo: string
    insurStartTime: string
    companyPlanName: string
    reportPhone: string
    accidentType: number
    hurtStatus: number
    isUploaded: number
    originName: string
    accidentDetails: string
    hospitalStatus: number
    visitHospital: string
    params: {
        fileUrl?: { fileType: string, fileUrl: string }[]
    }
    results?: ReportCaseResultDto[]
    reportCaseResultList?: ReportCaseResultDto[]
    insureDate: string
    reportPlan?: string
    fileList?: string[]
    isVisible: number
    reportStatus: number
    occupationOriginLevel: string
}


export interface DayInsuranceCaseDto {
    dateRange: string[] | undefined
    salesId: number
    companyId: number
    outDangerUserName: string
    outDangerPhone: string
    reportPhone: string
    reportStatus: string
    insureCompanyType: number
    beginOutDangerDate: string
    endOutDangerDate: string
    uploadStatus: string
}



export interface PeriodInsurClaimDto {
    accidentType: number
    estimateMoney: number
    finalMoney: number
    isVisible: number
    reportCaseId: number
    reportRemark: string
    reportStatus: number
}

export interface DailyInsurClaimOneDto {
    companyId: number
    estimateMoney: number
    finalMoney: number
    id: number
    reportStatus: number
}
export interface DailyInsurClaimTwoDto {
    insureCompanyType: number
    isVisible: string
    reportCaseId: number
    reportRemark: string
    reportSolveResult: number
}
export interface InsuranceMaterialsFileDto {
    fileId: number
    fileUrl: string
}
export interface PeriodInsuranceMaterialsDto<InsuranceMaterialsFileDto> {
    detail: string
    files: InsuranceMaterialsFileDto[]
    isRequired: number
    limitSize: number
    name: string
    type: number
}


export interface PeriodUtdangerListStaffDto {
    insurStartTime: string
    id: number
    userName: string
    idCardNo: string
}

export interface UploadPeriodInsuranceDto {
    fileSize: number,
    fileUrl: string,
    name?: string
    fileType?: string
    url?: string
    size?: number
}


// 
export interface PeriodInsuranceCaseReqDto<UploadPeriodInsuranceDto> {
    accidentDetails: string
    accidentType: number
    companyId: number
    hospitalStatus: number
    hurtStatus: number
    isAdmin: number
    outDangerDate: string
    outDangerPhone: string
    outDangerPlace: string
    outDangerUserName: string
    params: {
        photos: UploadPeriodInsuranceDto
    }
    recordId: number
    reportPhone: string
    visitHospital: string
}


export interface OneKeyDetailDto {
    companyName: string
    isExistAutoTerminalEnsure: boolean
    terminalEnsureStaffList: OperateRecordDetailDto[]
}


export interface OnekeyDto {
    oneKeyEnsureSucc: boolean
    isEnoughBalance: boolean
    tomorrowNeedCostFee: number
    currentBalance: number
    willEnsureCostFee: number
}